package com.hz;

import org.apache.poi.poifs.filesystem.POIFSFileSystem;

import java.io.*;

/**
 * Created by kaddddd on 2018/4/28 0028.
 */
public class Poi {

    public static void main(String[] args) throws Exception{
        htmlToWord2();
    }

    public static void htmlToWord2() throws Exception {
        //拼一个标准的HTML格式文档
        String content = "<html>"+
                "&lt;table border=\"1\" cellspacing=\"0\"&gt;\n" +
                "\t&lt;tbody&gt;\n" +
                "\t\t&lt;tr&gt;\n" +
                "\t\t\t&lt;td rowspan=\"5\" style=\"vertical-align:top; width:47.3pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;进&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;入&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;办&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;案&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;区&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;人&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;员&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;基&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;本&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;情&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;况&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;姓名&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;性别&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;出生日期&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;联系方式&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t&lt;/tr&gt;\n" +
                "\t\t&lt;tr&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;身份证种类&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;身份证号&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t&lt;/tr&gt;\n" +
                "\t\t&lt;tr&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;家庭住址&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t&lt;/tr&gt;\n" +
                "\t\t&lt;tr&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;进区原由&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td colspan=\"7\" style=\"vertical-align:top; width:331.45pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t&lt;/tr&gt;\n" +
                "\t\t&lt;tr&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;进区时间&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&lt;span style=\"font-size:10.5pt\"&gt;&lt;span style=\"font-family:Calibri,sans-serif\"&gt;&lt;span style=\"font-family:宋体\"&gt;管理员签名&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t\t&lt;td style=\"vertical-align:top; width:47.35pt\"&gt;\n" +
                "\t\t\t&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;\n" +
                "\t\t\t&lt;/td&gt;\n" +
                "\t\t&lt;/tr&gt;\n" +
                "\t&lt;/tbody&gt;\n" +
                "&lt;/table&gt;\n" +
                "\n" +
                "&lt;p style=\"text-align:justify\"&gt;&nbsp;&lt;/p&gt;"+
                "</html>";
        InputStream is = new ByteArrayInputStream(content.getBytes("GBK"));
        OutputStream os = new FileOutputStream("d:\\1.doc");
        inputStreamToWord(is, os);
    }

    /**
     * 把is写入到对应的word输出流os中
     * 不考虑异常的捕获，直接抛出
     * @param is
     * @param os
     * @throws IOException
     */
    private static void inputStreamToWord(InputStream is, OutputStream os) throws IOException {
        POIFSFileSystem fs = new POIFSFileSystem();
        //对应于org.apache.poi.hdf.extractor.WordDocument
        fs.createDocument(is, "WordDocument");
        fs.writeFilesystem(os);
        os.close();
        is.close();
    }

    /**
     * 把输入流里面的内容以UTF-8编码当文本取出。
     * 不考虑异常，直接抛出
     * @param ises
     * @return
     * @throws IOException
     */
    private String getContent(InputStream... ises) throws IOException {
        if (ises != null) {
            StringBuilder result = new StringBuilder();
            BufferedReader br;
            String line;
            for (InputStream is : ises) {
                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
                while ((line=br.readLine()) != null) {
                    result.append(line);
                }
            }
            return result.toString();
        }
        return null;
    }

}
